package com.cskaoyan.javase.oop1._13block._0introduction;

/**
 * 代码块的定义：由若干条Java语句组成，并且用一对大括号括起来的结构，叫做代码块。
 *          特别强调两点:
 *              a.类体的大括号不是代码块
 *              b.代码块中定义的变量都是局部变量
 *
 * 代码块的分类，根据其位置和声明方式的不同，可以分为：
 *      1.局部代码块,定义在局部位置的代码块就是局部代码块
 *          比如if/for循环的大括号都可以看成是一个局部代码块
 *          当然狭义上的局部代码块,指的是直接嵌套在局部位置的一个大括号
 *          局部代码块{} 直接定义在局部位置
 *          没有任何作用,不要在开发中这么做~
 *
 *      2.构造代码块,和构造器是有非常严密的联系.
 *      3.静态代码块,和static关键字有联系,和类加载有联系.
 *      4.同步代码块,涉及多线程知识，后面再学习，今天略过它。
 *
 * @since 16:43
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        int num = 10;
        // 局部代码块
        {
            num = 20;
            int a = 10;
        }
        int a = 10;

        Student s = new Student();
        s.name = "张三";
        String name2 = s.name;
        name2 = "张三";
    }
}

class Student {
    String name;
}
